package com.fr.question;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

/**
*作者：furong
*日期：2016年12月12日
*时间：下午2:42:04
*/
public class Sieve {
    Map<Integer, Integer> map = new HashMap<>();

    @Test
    public void sieve() {
        int n = 4;
        bianli(0, n, 0);
        int total = (int) Math.pow(6, n);
        System.out.println(total);
        for (int i = n; i <= 6 * n; i++) {
            System.out.println(i + " : " + map.get(i));
        }

    }

    private void bianli(int i, int n, int sum) {
        if (i >= n) {
            save(sum);
        } else {
            for (int j = 1; j <= 6; j++) {
                sum += j;
                bianli(i + 1, n, sum);
                sum -= j;
            }
        }

    }

    private void save(int sum) {
        Integer i = map.get(sum);
        if (i == null) {
            map.put(sum, 1);
        } else {
            i++;
            map.put(sum, i);
        }
    }
}
